// pages/addRecord/addRecord.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    petName: '火火', // 默认宠物名
    content: '',
    images: [],
    type: '', // 记录类型
    time: new Date(), // 记录时间
    timeText: '', // 时间显示文本
    navbarTitle: '添加记录' // 导航栏标题
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const { type } = options;
    const now = new Date();
    
    // 设置页面标题
    let title = '';
    switch(type) {
      case 'diet': title = '添加饮食记录'; break;
      case 'water': title = '添加喝水记录'; break;
      case 'weight': title = '添加体重记录'; break;
      case 'grooming': title = '添加洗护记录'; break;
      case 'toilet': title = '添加尿便记录'; break;
      case 'memo': title = '添加记事'; break;
      case 'abnormal': title = '添加异常记录'; break;
      case 'medicine': title = '添加用药记录'; break;
      default: title = '添加记录';
    }
    
    this.setData({
      type: type,
      time: now,
      timeText: this.formatTime(now),
      navbarTitle: title
    });
    
    wx.setNavigationBarTitle({
      title: title
    });
  },
  
  /**
   * 格式化时间显示
   */
  formatTime(date) {
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    const hour = date.getHours();
    const minute = date.getMinutes();
    
    return `${year}年${month}月${day}日 ${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
  },
  
  /**
   * 判断是否为今天
   */
  isToday(date) {
    const today = new Date();
    return date.getFullYear() === today.getFullYear() &&
           date.getMonth() === today.getMonth() &&
           date.getDate() === today.getDate();
  },
  
  /**
   * 内容输入事件
   */
  onContentInput(e) {
    this.setData({
      content: e.detail.value
    });
  },
  
  /**
   * 选择宠物
   */
  selectPet() {
    // 简单实现，实际项目中可能需要从宠物列表中选择
    wx.showToast({
      title: '当前只支持火火',
      icon: 'none'
    });
  },
  
  /**
   * 选择时间
   */
  selectTime() {
    const that = this;
    const currentTime = new Date();
    
    // 提供更多时间选项
    const itemList = [
      '选择日期和时间',
      '使用当前时间',
      '今天早上8:00',
      '今天中午12:00',
      '今天下午6:00'
    ];
    
    wx.showActionSheet({
      itemList: itemList,
      success(res) {
        switch(res.tapIndex) {
          case 0: // 选择日期和时间
            that.chooseDateTime();
            break;
          case 1: // 使用当前时间
            that.setData({
              time: currentTime,
              timeText: that.formatTime(currentTime)
            });
            break;
          case 2: // 今天早上8:00
            const morningTime = new Date();
            morningTime.setHours(8, 0, 0, 0);
            that.setData({
              time: morningTime,
              timeText: that.formatTime(morningTime)
            });
            break;
          case 3: // 今天中午12:00
            const noonTime = new Date();
            noonTime.setHours(12, 0, 0, 0);
            that.setData({
              time: noonTime,
              timeText: that.formatTime(noonTime)
            });
            break;
          case 4: // 今天下午6:00
            const eveningTime = new Date();
            eveningTime.setHours(18, 0, 0, 0);
            that.setData({
              time: eveningTime,
              timeText: that.formatTime(eveningTime)
            });
            break;
        }
      }
    });
  },
  
  /**
   * 选择日期和时间
   */
  chooseDateTime() {
    const that = this;
    // 先选择日期
    wx.showDatePicker({
      mode: 'date',
      success(dateRes) {
        // 再选择时间
        wx.showDatePicker({
          mode: 'time',
          success(timeRes) {
            // 合并日期和时间
            const selectedDate = new Date(dateRes.date);
            const selectedTime = new Date(timeRes.date);
            
            selectedDate.setHours(selectedTime.getHours());
            selectedDate.setMinutes(selectedTime.getMinutes());
            
            that.setData({
              time: selectedDate,
              timeText: that.formatTime(selectedDate)
            });
            
            wx.showToast({
              title: '时间选择成功',
              icon: 'success'
            });
          },
          fail(err) {
            console.error('选择时间失败', err);
            wx.showToast({
              title: '选择时间失败',
              icon: 'none'
            });
          }
        });
      },
      fail(err) {
        console.error('选择日期失败', err);
        wx.showToast({
          title: '选择日期失败',
          icon: 'none'
        });
      }
    });
  },
  
  /**
   * 保存记录
   */
  saveRecord() {
    if (!this.data.content.trim()) {
      wx.showToast({
        title: '请输入内容',
        icon: 'none'
      });
      return;
    }
    
    // 构造记录对象
    const record = {
      petName: this.data.petName,
      content: this.data.content,
      time: this.formatTimeForRecord(this.data.time),
      images: this.data.images,
      type: this.data.type
    };
    
    // 通过页面栈将数据传递回上一页
    const pages = getCurrentPages();
    const prevPage = pages[pages.length - 2]; // 上一页
    
    if (prevPage && prevPage.route === 'pages/record-list/record-list') {
      // 调用上一页的addRecord方法添加记录
      prevPage.addRecordToList(record);
    }
    
    // 返回上一页
    wx.navigateBack();
  },
  
  /**
   * 格式化时间用于记录存储
   */
  formatTimeForRecord(date) {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    
    return `${year}-${month}-${day} ${hour}:${minute}`;
  },
  
  /**
   * 返回按钮点击事件
   */
  back() {
    wx.navigateBack();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})